// 发送用户相关的请求
import { request } from '@/utils/request' //  export
// import request  from '@/utils/request'  //  export  default
import type { User, UserInfo, PatientList, Patient } from '@/types/user'

// 登录的api

export const loginByPassword = (mobile: string, password: string) => {
  // 后续 在 service 下面发请求 校验 那就看接口文档中 data 的字段怎么返回的
  return request<User>('/login/password', 'POST', {
    mobile,
    password
  })
}

// 获取验证码
//  axios baseUrl  会自动拼接
export const getCode = (mobile: string, type: string) => {
  console.log(mobile, 'mobile')

  return request<{ code: string }>('/code', 'GET', { mobile, type })
}

//  验证码登录
//  一般情况下  自定义的函数的参数  我们写的都是和接口文档保持一致
// export const loginByMobile = (mobile: string, code: string) => {
//   // request  泛型 约束的是 后端返回对象的 data 字段
//   return request<User>('/login', 'POST', { mobile, code })
// }
export const loginByMobile = (mobile: string, code: string) =>
  request<User>('/login', 'POST', { mobile, code })

// h获取用户信息
// request 里面的数据类型参照接口文档 返回的 data 中的 字段
export const getUserInfo = () => request<UserInfo>('/patient/myUser')

// 查询患者列表信息

export const getPatientList = () => request<PatientList>('/patient/mylist')

//   问诊-添加患者信息
//  patient  这个对象  必须 要和 接口文档中的字段保持一致
export const addPatient = (patient: Patient) =>
  request('/patient/add', 'POST', patient)

//  问诊-查询患者详情

export const getPatient = (id: string) =>
  request<Patient>(`/patient/info/${id}`)

// 编辑 患者详情

export const edittPatient = (patient: Patient) =>
  request('/patient/update', 'PUT', patient)

// 删除 患者

export const deletePatient = (id: string) =>
  request(`/patient/del/${id}`, 'delete')
